<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Title</title>
    <script src="../vueJS/VUE.js"></script>
</head>

<body>
    <div id="root">
        姓：<input type="text" v-model:value="xing">
        <br>
        名：<input type="text" v-model:value="ming">
        <br>
        姓名：{{fullname}}
    </div> 
    <script type="text/javascript">
        let a = 9
    Vue.config.productionTip = false
    const vm = new Vue({
        el:'#root',
        data:{
            xing:'张',
            ming:'三'
        },
        computed:{//计算属性必须依赖vue监测的属性，脱离的不生效,例如上面的a被修改不会影响fullname的return
            fullname:{
                get(){//多次调用只执行一次，因为会存储在缓存中，但是如果计算依赖的发生改变，就会重新执行，比method好，因为method每次都要调用
                    return this.xing+this.ming+a
                },
                set(value){//被修改调用,可以反过来修改依赖
                    const arr = value.split('-')
                    this.xing = arr[0]
                    this.ming = arr[1]
                }
            }
            // 简写方法--只使用没有set
            // fullname1(){
            //     get的函数
            // }
        }
    })
    </script>
</body>
</html>